4 // Fibonacci and Overtone scale (see e.g. Jay Kappraff, "Connections - the
5 // Geometric Bridge between Art and Science"). I keep returning to this for
6 // some reason. Maybe I should stop listening to Bela B? Anyway it is about
7 // Fibonacci numbers, ie
8 // f(0) = 1, f(1) = 1, f(n) = f(n-1)+f(n-2)
9 // which gives the series 1,1,2,3,5,8,13, 21...
10 // It approximates the Golden Ratio if You divide f(n)/f(n-1)
11 // Bela Bartok used this and constructed a (fibonacci) scale from this,
12 // with C as fundamental (0), skipping 1's and going upto 13:
13 // C, D, Eb, F, Ab, C#.
14 // He also used the overtone scale, built on fundamental plus harmonics and
15 // made into a scale with frequency ratios 1:1, 2:1, 3:1 etc. This gives fundamental,
16 // octave, fifth+octave etc. Starting on C, we get (a well-tempered approximation) :
17 // C, D, E, F#, G, A, Bb, B, C.
18 // These scales decomposes the chromatic scale into to two complementary in terms
19 // of emotion and this duality can be used to create great contrast, ie Fibonacci
20 // "inferno" and overtone "paradisio".
21 // Staffan Liljegren, 990712, staffan@medialab.ericsson.se
23 // First both in contrasting sequence:
27 fib = #[60, 62, 63, 65, 68, 73];
28 ot = #[60, 62, 64, 66, 67, 69, 70, 71];
31 \midinote, Pseq([ Pseq(fib), Pseq([\rest],2), Pseq(ot)], 2)
32 // play message supplies the Event.protoEvent as default
36 // Let us use the Fibonacci series for duration and legato values also and
37 // uses these values for duration and legato:
38 // 1,1, 1/2, 1/3, 1/5, ...
39 // This is a series 1/fib(n).
40 // In this particular example, which is only here to demonstrate the components,
41 // we just play the fib scale up with random legato and a rythm which goes:
42 // 1,1, 1/2, 1/2, 1/3, 1/3, 1/3, 1/5, 1/5, 1/5, 1/5,1/5
44 // Or "taa-taa-tantan-tateti-dallapicola" in 5/4. Don't ask me about these
45 // rythm mnemonics! The fib scale contains 6 notes and this rythm pattern has
46 // 12 events, so we play the fib scale twice over the rythm. Finally we add
47 // a random fib bass on each beat and then play a sequence of
48 // bass only, 2*bass+mel, 2*bass+mel transposed up and then down a 5th and
49 // finally the melody alone and a simple ending
51 var fib, bass, mel, ending,tune;
53 fib = #[60, 62, 63, 65, 68, 73];
59 \midinote, Pxrand(fib - 24, 5)
63 \legato, Prand([1,1,1/2,1/3, 1/5, 1/8], inf),
64 \dur, Pseq([1,1,Pseq([1/2],2),Pseq([1/3],3), Pseq([1/5], 5)], 1),
65 \midinote, Pseq( fib , 2)
67 ending = Pbind( \dur, Pgeom(0.05, 1.1, 20), \midinote,Pseq([68,72],10) );
70 Ppar([ bass, mel ],2),
71 Padd(\ctranspose, 7, Ppar([ bass, mel ],2)),
72 Padd(\ctranspose, -7, Ppar([ bass, mel ],2)),
81 // Let us now shuffle notes and durations a bit in the melody. We also
82 // add some rests to the melody line and play two separate melody lines
85 var fib, bass, mel, ending,tune;
87 fib = #[60, 62, 63, 65, 68, 73];
93 \midinote, Pxrand(fib - 24, 5)
97 \legato, Prand([1,1,1/2,1/3, 1/5, 1/8], inf),
98 \dur, Pshuf([1,1,Pseq([1/2],2),Pseq([1/3],3), Pseq([1/5], 5)], 1),
99 \midinote, Prand( fib ++ [\rest, \rest] , 10)
103 Ppar([ bass, mel, mel ],2),
104 Padd(\ctranspose, 7, Ppar([ bass, mel, mel ],2)),
105 Padd(\ctranspose, -7, Ppar([ bass, mel, mel ],2))
112 // Back to the overtone scale now. Here is a simple example, using
113 // a randomly "pulsating" ot scale and shuffled long bass notes with even
114 // durations in 5/4. This is then chromatically transposed upto a 5th and
115 // in steps following the ot scale
120 ot = #[60, 62, 64, 66, 67, 69, 70, 71];
123 \amp, Pseq([ Pgeom(0.2,0.95,50)],2),
124 \midinote, Prand( ot-12, inf),
126 \pan, Pfunc({1.0.rand2})
129 b = Pbind( \dur, Prand([5,Pseq([1,1,1,1,1]), Pseq([3,2]) ], 2),
130 \amp, Pfunc( {XLine.kr(0.001,0.1, 0.5)} ),
131 \midinote, Pshuf( ot-24)
135 Pseq([0,2,4,6,7], inf), Ppar([b,c])).play
140 // You might also consider removing the 1/5 in the melody duration
141 // if fast "dallapiccolas" upset You! Here I changed it to 3 1/3 notes
143 var fib, bass, mel, ending,tune;
145 fib = #[60, 62, 63, 65, 68, 73];
151 \midinote, Pxrand(fib - 24, 5)
155 \legato, Prand([1,1,1/2,1/3, 1/5, 1/8], inf),
156 \dur, Pshuf([1,1,Pseq([1/2],2),Pseq([1/3],3), Pseq([1/3], 3)], 1),
157 \midinote, Prand( fib ++ [\rest, \rest] , 10)
161 Ppar([ bass, mel, mel ],2),
162 Padd(\ctranspose, 7, Ppar([ bass, mel, mel ],2)),
163 Padd(\ctranspose, -7, Ppar([ bass, mel, mel ],2))
170 // Now write Your own piece with the fib and ot scales!
171 // Or just play around with these simple ones